/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.archwood.frc2607.logomotion;

/**
 *
 * @author Ron
 */
public interface LogomotionConstants {

    public static final int frontLeftCANID = 12, frontRightCANID = 10,
                            rearLeftCANID = 11, rearRightCANID = 2;

   // public static final int elbowLeftCANID = 14, elbowRightCANID = 6;
   // public static final int shoulderLeftCANID = 8, shoulderRightCANID = 20;

    public static final short frontLeftIndex = 0,
                            frontRightIndex = 1,
                            rearLeftIndex = 2,
                            rearRightIndex = 3;
    public static final int encoderLines[] = {250, 250, 360, 350}; // FL, FR, RL, RR
    public static final double pidGains[][] = { {.350, .004, .001}, // FL
                                                {.350, .004, .001}, // FR
                                                {.350, .004, .001}, // RL
                                                {.350, .004, .001}  // RR
                                              };
    public static final short armTopMiddle = 0,
                              armMidMiddle = 1,
                              armFeeder = 2;
    public static final int armPositions[][] = { {590, 550},    // top middle
                                                 {160, 182},    // middle middle
                                                 {130, 230}     // feeder
                                               };
    // 452, 312 for top side,  move elbow to 481 to hang, then back to 322,216 and reverse
    
    public static final double minRPM = 0.0, maxRPM = 800.0;
    public static final double rangeRPM = (maxRPM - minRPM);
    public static final double wheelInchesPerRev = 18.849555921538759430775860299677;
    public static final double elbowMinPosition = 6, elbowMaxPosition = 955,
                               shoulderMinPosition = 130, shoulderMaxPosition = 900;

    public static final int compressorRelay = 1;
    public static final int gyroAI = 1, temperatureAI = 2,
                            elbowPotAI = 4, shoulderPotAI = 6;
    public static final int leftPhotoSwitchDI = 2, midPhotoSwitchDI = 1,
                            rightPhotoSwitchDI = 3, compressorSwitchDI = 5;
    public static final int clawSolenoid = 1;

    public static final int DeploymentServoPWM = 6;
    public static final int ReleaseServoPWM = 5;

    public static final byte Justdrive_Top = 99;
    public static final byte Justdrive_Mid = 1;
    public static final byte Justdrive_Low = 2;
    
    public static final byte Straightline_Top = 3;
    public static final byte Straightline_Mid = 4;
    public static final byte Straightline_Low = 5;
    
    public static final byte Forkleft_Top = 6;
    public static final byte Forkleft_Mid = 7;
    public static final byte Forkleft_Low = 8;
    
    public static final byte Forkright_Top = 9;
    public static final byte Forkright_Mid = 10;
    public static final byte Forkright_Low = 11;

    public static final int MaxAutonModes = 11;//Always the value just above here
    public String getTelemetryHeader();      // returns string to use in header row of CSV
    public String getTelemetryData();        // returns data row in CSV format
}
